package xdu.lz.stage1_basic.chapter2_api.e_close;

/**
 * 线程也有暴力关闭的API，如stop，但是已经被废弃了，不建议使用。
 * 如果在while(flag){}里面阻塞住了，并且没有机会sleep或中断，那么
 * 采取暴力关闭的方式
 */
public class ShutDown3_ForeShutDown {


    public static void main(String[] args) {
        ThreadService threadService = new ThreadService();
        long start = System.currentTimeMillis();
        threadService.execute(()->{
//            //方式1：执行任务超时
//            while (true){
//                //模拟加载大数据，时长很长,这个线程被threadService的添加为threadService的守护线程
//            }
            //方式2：提前执行完毕任务，不会等那么久
            try {
                Thread.sleep(1000L);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        //如果任务执行超过设定的值，则关闭。在shutdown中判断了任务执行完毕的情况 ，所以如果任务提前执行完毕了
        //不会等这么长时间，会直接关闭
        threadService.shutdown(5000L);
        System.out.println("执行的时间:"+(System.currentTimeMillis() - start));
    }

}
